<?php

namespace common\models;

use Yii;
use yii\db\ActiveRecord;
use yii\helpers\ArrayHelper;

/**
 * This is the model class for table "blog".
 *
 * @property int $id
 * @property string $title 标题
 * @property string $content 内容
 * @property int $views 点击量
 * @property int $is_delete 是否删除 1未删除 2已删除
 * @property string $created_at 添加时间
 * @property string $updated_at 更新时间
 */
class Blog extends ActiveRecord
{
    /**
     * 栏目类别
     */
    public $category;

    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'blog';
    }

    /**
     * 使用系统预留的model事件
     */
    public function init()
    {
        parent::init();
        // 插入前的事件
        $this->on(self::EVENT_BEFORE_INSERT, [$this, 'onBeforeInsert']);
        // 插入后的事件
        $this->on(self::EVENT_AFTER_INSERT, [$this, 'onAfterInsert']);
    }

    /**
     * 在插入之前的事件
     */
    public function onBeforeInsert()
    {
        yii::info('This is beforeInsert event.');
    }

    /**
     * 在插入之后的事件
     */
    public function onAfterInsert()
    {
        yii::info('This is alterInsert event.');
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['title', 'content', 'category'], 'required'],
            //  [['id', 'content', 'created_at', 'updated_at'], 'required'],
            [['id', 'views', 'is_delete'], 'integer'],
            [['content'], 'string'],
            [['created_at', 'updated_at'], 'safe'],
            [['title'], 'string', 'max' => 100],
            [['id'], 'unique'],
            // default 默认在没有数据的时候才会进行赋值
            [['created_at', 'updated_at'], 'default', 'value' => date('Y-m-d H:i:s')],
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'title' => '标题',
            'content' => '内容',
            'views' => 'Views',
            'is_delete' => '是否显示',
            'created_at' => 'Created At',
            'updated_at' => 'Updated At',
        ];
    }


    /**
     *  下拉筛选
     * @column string 字段
     * @value mix 字段对应的值，不指定则返回字段数组
     * @param $column
     * @param null $value
     * @return mix 返回某个值或者数组
     */
    public static function dropDown($column, $value = null)
    {
        $dropDownList = [
            "is_delete" => [
                "0" => "显示",
                "1" => "删除",
            ],
            //有新的字段要实现下拉规则，可像上面这样进行添加
            // ......
        ];
        //根据具体值显示对应的值
        if ($value !== null)
            return array_key_exists($column, $dropDownList) ? $dropDownList[$column][$value] : false;
        //返回关联数组，用户下拉的filter实现
        else
            return array_key_exists($column, $dropDownList) ? $dropDownList[$column] : false;
    }

    public static function dropDownList()
    {
        $result = [
            "0" => "显示",
            "1" => "删除"
        ];
        return $result;
    }

}
